package com.cmwa.solution.sys.permission.post.service;

import java.util.List;
import java.util.Set;

import com.cmwa.solution.base.entity.Page;
import com.cmwa.solution.base.entity.SearchParam;
import com.cmwa.solution.exception.RepositoryException;
import com.cmwa.solution.sys.permission.post.entity.PostVo;

public interface PostService {

	/**
	 * 根据岗位ID获取详情
	 * @param postId
	 * @return
	 */
	PostVo detailById(String postId);

	/**
	 * 保存岗位
	 * @param postVo
	 */
	void savePost(PostVo postVo) throws RepositoryException;

	/**
	 * 更新
	 * @param postVo
	 */
	void updatePost(PostVo postVo) throws RepositoryException;

	/**
	 * 检测是否重复
	 * @param postTitle
	 * @param postCode
	 * @param postId
	 * @return
	 */
	boolean checkRepeatPost(String postTitle, String postCode, String postId);

	/**
	 * 岗位列表数据
	 * @param sp
	 * @return
	 */
	Page<PostVo> postListPage(SearchParam sp);

	/**
	 * 根据岗位ID进行软删除
	 * @param postId
	 */
	void deletePostWithStatus(String postId) throws RepositoryException;

	/**
	 * 获取匹配岗位
	 * @return
	 */
	List<PostVo> queryMatchPost(String postTitle);

	/**
	 * 查询岗位信息
	 * @param postVo
	 * @return
	 */
	PostVo queryPostInfo(PostVo postVo);

	/**
	 * 根据用户id查询所拥有的岗位
	 * @author ex-hejm
	 * @date 2018年10月23日 下午4:30:32
	 * @param empId
	 * @return
	 */
	public Set<String> getPostCodesByEmpId(String empId);
	
	List<PostVo> queryIsConfPostList();
}
